1. Field of the Invention
The present invention relates to an apparatus and method for supporting model-driven development. In particular, the present invention relates to an apparatus and method for merging changes in a model in model-driven development.
2. Description of Related Art
In a collaborative development environment where multiple developers are engaged in development of the same application, since the developers individually change the application, it is important to merge differences in the application resulting from the individual changes in the application. Heretofore, such merging is carried out by use of a function in a tool, such as Concurrent Versions System (CVS) and Rational (registered trademark), of extracting a difference between source codes.
Today, an activity called modeling of writing a model used as an application design chart is carried out in order to smoothly progress application development. One of typical modeling languages used for such modeling is the Unified Modeling Language (UML). The UML has been standardized by the Object Management Group (OMG), and is a modeling language that can be called a de facto standard in object-oriented application development. Since the flow and functions of an application are expressed in a diagram by use of the UML, the UML can provide a visually and easily understandable model.
Heretofore, the extracting of a difference between two or three UML models directly edited by the respective developers has been carried out (see Kim Letkeman, “Comparing and merging UML models in IBM Rational Software Architect,” [online], 12 Jul. 2005 [searched on 9 Apr. 2007], Internet <URL:http://www-128.ibm.com/developerworks/rational/librar y/05/712_comp/> and <URL:http://www-128.ibm.com/developerworks/rational/librar y/05/712_comp2/>). According to Kim Letkeman, “Comparing and merging UML models in IBM Rational Software Architect,” [online], 12 Jul. 2005 [searched on 9 Apr. 2007], Internet <URL:http://www-128.ibm.com/developerworks/rational/librar y/05/712_comp/> and <URL:http://www-128.ibm.com/developerworks/rational/librar y/05/712_comp2/>, a difference is extracted by use of the Eclipse compare support tool.
Moreover, there is also a known technique using a model editing system allowing application software to be dialogically created by use of a model to be edited and a view model that displays the model in a certain format. According to this technique, when the structure of the model is changed, the model and the view model can be efficiently synchronized with each other (for example, see Japanese Patent Application Laid-open Publication No. 2006-268764).
In application development in recent years, challenges for many developers are to shorten a development period and to reduce development costs. In this regard, the OMG provides the Model Driven Architecture for model-centered development of an application. This Model Driven Architecture is architecture that enables models in multiple modeling environments to be tied up through model transformation. The Model Driven Architecture is composed of three-layered logic models of a computational independent model (CIM), a platform independent model (PIM) and a platform specific model (PSM). Here, the CIM is a model, such as a business process, for example, that is independent of operations on a computer. The PIM is a model independent of a platform. The PSM is a model specific to a platform, for example, a model of J2EE (Java 2 Enterprise Edition) (Java and other trademarks containing Java are registered trademarks and trade names of Sun Microsystems, Inc. in the United States and other countries). A mechanism for transforming a highly abstract model into implementation codes full-automatically or semi-automatically can be obtained by employing the model-driven development with the Model Driven Architecture. This allows workload required for development to be reduced and a developed application to be easily ported into a different environment or a platform.
However, when the model-driven development is actually carried out, a model defined in an upper layer needs to be considered as one to be changed inevitably. In addition, a model defined in a lower layer is naturally customized or modified independently of a change in the model in the upper layer.
More specifically, when a model that is a base for generation (source model) is updated, the model has a difference from the model before update. In this state, if a model transformation is carried out at a certain time point, the difference in the source model makes an impact on a model generated based on the source model (target model). For example, here, consider what kind of impact an addition of one model element in response to a change request in the PIM level makes on codes in the PSM level that have been automatically generated before the addition. The Model Driven Architecture has a feature of transferring information on an upper model to a lower model as “a specification,” if possible. Accordingly, one change in the upper model may make many impacts on the lower model.
Moreover, in some cases, a model and codes already generated through the model transformation are edited in response to a change request or the like in each level (PIM or PSM).
In this case, the problem is how to merge the impacts from the upper model and the editing in the lower model.
The model transformation in the model-driven development is effective in the sense of generating a first edition of a target model. However, a method has not yet been developed for managing many changes in response to repeated change requests when the model-driven development is applied to actual application development. As a result, in many cases, the application of the model-driven development results in an increase of entire costs as compared with a case where the model-driven development is not applied.
In this case, the problematic point is a state in which an upper model and a lower model are changed independently. However, the technique of Kim Letkeman, “Comparing and merging UML models in IBM Rational Software Architect,” [online], 12 Jul. 2005 [searched on 9 Apr. 2007], Internet <URL:http://www-128.ibm.com/developerworks/rational/librar y/05/712_comp/> and <URL:http://www-128.ibm.com/developerworks/rational/librar y/05/712_comp2/> has not been developed based on the premise of such a state.
In addition, the invention of Japanese Patent Application Laid-open Publication No. 2006-268764 cannot solve the foregoing problem because the invention mainly focuses on the synchronization of the view model and the model with each other.